export default {
	// 为当前模块开启命名空间
	namespaced: true,
	
	// 模块的 state 数据
	state:() => ({
		//点赞的视频
		play: JSON.parse(uni.getStorageSync('play') || '[]'),
		//收藏的视频
		shoucang: JSON.parse(uni.getStorageSync('shoucang') || '[]'),
		//评论的内容
		pinglun: JSON.parse(uni.getStorageSync('pinglun') || '[]'),
	}),
	
	
	mutations:{
		//根据视频的id查询我的喜欢是否存在这个视频
		addvideo(state,video){
			const findResult = state.play.find(x => x.id === video.id)
			//如果有没有则直接添加进去
			if(!findResult){
				state.play.push(video)
			//如果有则返回出去
			}else{
				return false
			}
			// 通过 commit 方法，调用 m_cart 命名空间下的 saveToStorage 方法
			this.commit('m_video/saveToaddvideo')
		},
		
		//根据视频的id删除我的喜欢的视频
		removevideo(state,remove){
			// 调用数组的 filter 方法进行过滤
			state.play = state.play.filter(x => x.id !== remove.id)
			// 持久化存储到本地
			this.commit('m_video/saveToaddvideo')
		},
		saveToaddvideo(state){
			//string key：本地缓存中指定的 key ，any data：需要存储的内容。只支持原生类型、Date、及能够通过JSON.stringify序列化的对象。
			// wx.setStorageSync(string key, any data)
			// JSON.stringify()将一个数组转成字符串之后存储在本地
			uni.setStorageSync('play',JSON.stringify(state.play))
		},
		
		//根据视频的id查询我的收藏是否存在这个视频
		addshoucang(state,look){
			const findResult = state.shoucang.find(x => x.id === look.id)
			//如果有没有则直接添加进去
			if(!findResult){
				state.shoucang.push(look)
			//如果有则返回出去
			}else{
				return false
			}
			// 通过 commit 方法，调用 m_cart 命名空间下的 saveToStorage 方法
			this.commit('m_video/saveToshoucangvideo')
		},
		
		//根据视频的id删除我的收藏的视频
		removeshoucang(state, remove){
		// 调用数组的 filter 方法进行过滤
		state.shoucang = state.shoucang.filter(x => x.id !== remove.id)
		// 持久化存储到本地
		this.commit('m_video/saveToshoucangvideo')
		},
		
	
		saveToshoucangvideo(state){
			//string key：本地缓存中指定的 key ，any data：需要存储的内容。只支持原生类型、Date、及能够通过JSON.stringify序列化的对象。
			// wx.setStorageSync(string key, any data)
			// JSON.stringify()将一个数组转成字符串之后存储在本地
			uni.setStorageSync('shoucang',JSON.stringify(state.shoucang))
		},
		
		//增加评论
		addpinglun(state,pinglun){
			state.pinglun.push(pinglun)
			this.commit('m_video/savepinglun')
		},
		//根据id删除评论
		deletepinglun(state,remove){
			state.pinglun = state.pinglun.filter(x => x.id !== remove.id)
			this.commit('m_video/savepinglun')
		},
		savepinglun(state){
	        uni.setStorageSync('pinglun',JSON.stringify(state.pinglun))		
		},
		
	},
	// 模块的 getters 属性
	getters:{
		//计算评论的总数
		totalpl(state){
			return state.pinglun.reduce((total,item) => total += item.size,0)
		}
	}
}